package com.fy56.platform.logistics.service.wx;

import com.alibaba.fastjson.JSONArray;
import com.fy56.platform.logistics.common.ResultModel;
import com.fy56.platform.logistics.model.Company;
import com.fy56.platform.logistics.service.common.IBaseService;

import java.util.List;

/**
 * @author  by Edwin Yang on 2018/2/27 0027.
 */
public interface ICompanyInfoService extends IBaseService<Company>  {

    /**
     * 获取网点信息
     *
     * @param code
     * @param longitude
     * @param latitude
     * @return
     */
    List<Company> getWebList(String code, String longitude,  String latitude,Company model);

    /**
     * 根据区域code获取网点信息
     *
     * @param code
     * @param longitude
     * @param latitude
     * @param administrativeDivisionCode 区域code
     * @param wdName 网点名称
     * @return
     */
    ResultModel getWebListById(String code, String longitude,  String latitude, String administrativeDivisionCode, String wdName);

    List<Company> getF6WebList(JSONArray sendCompanys, String longitude, String latitude);

    /**
     * 根据用户ID获取租户
     *
     * @param entity
     * @return
     */
    List<Company> getCompanyListByUserId(Company entity);

    /**
     * 查询企业记录
     *
     * @param entity
     * @return
     */
    List<Company> select(Company entity);

    List<Company> getCompanyListWithOutUserId(Company entity);

    /**
     * 根据金融代码获取webUrl
     *
     * @param code
     * @return
     */
    String getCompanyWebUrl(String code);

    Company getCompanyByCode(String code);

    Company queryByCompanyCode(String code);

    Company getCompanyById(Long id);

    ResultModel updateCompany(Company company);
    List<Company> selectCompanyList(Company entity);

    /**
     * 获取所有公司
     *
     * @return
     */
    List<Company> selectAllCompanys();

    /**
     * 从腾云服务上, 同步公司信息, 根据总公司信息
     * @param model 总公司信息(code金融代码 和 tenantPass 金融密码)
     * @param loginName 操作人
     * @return
     */
    ResultModel synchroCompany(Company model, String loginName);

    /**
     * 从腾云服务上, 同步公司信息, 根据临时文件
     * @param fileUrl 临时文件-路径
     * @param loginName 操作人
     * @return
     */
    ResultModel synchroCompanyBatch(String fileUrl, String loginName);


}
